package com.itheima.controller;

import com.itheima.pojo.Dept;
import com.itheima.pojo.Result;
import com.itheima.service.DeptService;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;



@RestController
public class DeptController {
    @Autowired
    DeptService ds;
    //通过@RequestMapping这种方式来限定请求方式和传递路径当然可以使用
    //@GetMapping("/depts")来实现
   /* 无请求参数直接访问/depts */
    @RequestMapping(value="/depts",method= RequestMethod.GET)
    public Result list(){
       List<Dept> l= ds.findall();
      return  Result.success(l);
    }
    /*/depts?id=1的形式来作为请求参数*/
    @DeleteMapping("/depts")
    public Result delete(@RequestParam("id") Integer idd){
        System.out.println("被删除的id是"+idd);
        ds.deletone(idd);
        return Result.success();
    }

    /*使用post方式传递数据，与get不同的也就出现在第一步需要定义对象来接收数据，接着不断地传递
    该对象，在SQL语句中，我们是通过对象属性名来传递SQL语句的参数*/
    @RequestMapping(value = "/depts",method = RequestMethod.POST)
    public Result insert(@RequestBody Dept d){
        System.out.println("传入的姓名是"+d.getName());
        ds.insertone(d);
        return Result.success();
    }

    @GetMapping(value = "/depts/{id}")
    public Result getInfor(@PathVariable("id") Integer id){
        System.out.println("要查询的字段是："+id);
        return Result.success(ds.getone(id));
    }
    @PutMapping(value = "/depts")
    public Result changeInfo(@RequestBody Dept d2){
        System.out.println("传入的id是"+d2.getId()+",传入的部门是"+d2.getName());
        ds.changeone(d2);
        return Result.success();
    }
}
